﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp3
{
    /// <summary>
    /// 定义事件总线接口：首先，我们需要定义一个事件总线的接口，这样我们就可以在不同的地方使用它，而不需要关心它的具体实现。
    /// </summary>
    public interface IEventBus
    {
        void Publish<TEvent>(TEvent eventData);

        void Subscribe<TEvent>(Action<TEvent> eventHandler);

        void Unsubscribe<TEvent>(Action<TEvent> eventHandler);

    }
}
